package br.com.moto.web;

import br.com.moto.ejb.AmigoSessionBean;
import br.com.moto.ejb.PessoaSessionBean;
import br.com.moto.entity.Amigo;
import br.com.moto.entity.Pessoa;
import java.awt.event.ActionEvent;
import java.util.List;
import javax.ejb.EJB;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext; 

@ManagedBean(name = "amigoController")
@SessionScoped
public class AmigoMBean {
    
    @EJB
    private AmigoSessionBean amigoSessionBean;
    
    @EJB
    private PessoaSessionBean pessoaSessionBean;
    
    private Amigo amigo = new Amigo();
    private Amigo amigoSelecionado;
    private Pessoa pessoaSelecionado;
    private Amigo solicitacaoAmigo;
    
    public AmigoMBean() {
    }
    
    public List amigoByPost(Integer userId) { 
        return amigoSessionBean.getAmigoByPost(userId);
    }     
    
    public List getSolicitacao(){    
        return amigoSessionBean.getSolicitacao(LoginUtils.getLoggedUser()); 
    }
    
    public void addAmigo(){
        
        Pessoa pessoa = pessoaSessionBean.getPessoaByEmail(LoginUtils.getLoggedUser());

        System.out.println("##addAmigo");
        System.out.println("##amigoSelecionado=" + pessoa.getNome() + " - " + pessoa.getEmail());
        
        Amigo amigo = new Amigo();
        amigo.setIdPessoaDe(pessoa);
        amigo.setIdPessoaPara(pessoaSelecionado);
        amigo.setAutorizado(1);
        
        amigoSessionBean.create(amigo);
    }
    
    
    public List getListaAmigos() { 
        return amigoSessionBean.retrieve();
    }
    
    public List<Amigo> findMeusAmigos(){
        return amigoSessionBean.findMeusAmigos(LoginUtils.getLoggedUser());
    }
    
    public void aceitar(){
        
        Amigo a = new Amigo();
        a.setId(solicitacaoAmigo.getId());
        a.setIdPessoaDe(solicitacaoAmigo.getIdPessoaDe());
        a.setIdPessoaPara(solicitacaoAmigo.getIdPessoaPara());
        a.setAutorizado(0);
       
        amigoSessionBean.update(a);
        FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("Novo amigo autorizado!"));
    }
    
    public void recusar(){
        
        Amigo a = new Amigo();
        a.setId(solicitacaoAmigo.getId());
           
        amigoSessionBean.delete(a);
        FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("Solicitação recusada"));
    }    
    
    public void adicionarAmigo() {
        System.out.println("##adicionarAmigo");
        //amigoSessionBean.create(amigo);        
        FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("Novo amigo adicionado com sucesso!"));
    }
    
    public void novoAmigo() {
        System.out.println("##novoAmigo");
        amigo = new Amigo();
    }     
    
    public void carregarAmigo() {
        System.out.println("##carregarAmigo" + amigoSelecionado.getId());        
        amigo = amigoSessionBean.getAmigo(amigoSelecionado);
    }    
    
    public void excluirAmigo() {
            amigoSessionBean.delete(amigoSelecionado);
            FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("Excluído com sucesso!"));
    }    

    public Amigo getAmigo() {
        return amigo;
    }

    public void setAmigo(Amigo amigo) {
        this.amigo = amigo;
    }

    public Amigo getAmigoSelecionado() {
        return amigoSelecionado;
    }

    public void setAmigoSelecionado(Amigo amigoSelecionado) {
        this.amigoSelecionado = amigoSelecionado;
    }

    public Pessoa getPessoaSelecionado() {
        return pessoaSelecionado;
    }

    public void setPessoaSelecionado(Pessoa pessoaSelecionado) {
        this.pessoaSelecionado = pessoaSelecionado;
    }

    public Amigo getSolicitacaoAmigo() {
        return solicitacaoAmigo;
    }

    public void setSolicitacaoAmigo(Amigo solicitacaoAmigo) {
        this.solicitacaoAmigo = solicitacaoAmigo;
    }

    
}